From de034605f5f524d8b6219e89800bea977d7317c1 Mon Sep 17 00:00:00 2001 From: Jonathan Dieter Date: Sun, 11 Mar 2018 10:56:41 +0200 Subject: [PATCH] Make zckDL struct public and add in function to get temporary fd and download range based on url and zckDL Signed-off-by: Jonathan Dieter --- include/zck.h | 15 ++++++++++++++- src/lib/zck_private.h | 16 +++++++++++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/include/zck.h b/include/zck.h index 9ea488d..039ed55 100644 --- a/include/zck.h +++ b/include/zck.h @@ -55,8 +55,19 @@ typedef struct zckIndexInfo { zckIndex *first; } zckIndexInfo; +typedef struct zckDLPriv zckDLPriv; + +typedef struct zckDL { + size_t dl; + size_t ul; + int dst_fd; + char *boundary; + zckIndexInfo index; + zckRangeInfo info; + zckDLPriv *priv; +} zckDL; + typedef struct zckCtx zckCtx; -typedef struct zckDL zckDL; zckCtx *zck_create(); void zck_free(zckCtx *zck); @@ -81,6 +92,7 @@ int zck_get_full_digest_size(zckCtx *zck); int zck_get_chunk_digest_size(zckCtx *zck); int zck_get_full_hash_type(zckCtx *zck); int zck_get_chunk_hash_type(zckCtx *zck); +int zck_get_tmp_fd(); const char *zck_hash_name_from_type(uint8_t hash_type); const char *zck_comp_name_from_type(uint8_t comp_type); int zck_range_calc_segments(zckRangeInfo *info, unsigned int max_ranges); @@ -95,6 +107,7 @@ void zck_dl_free(zckDL *dl); int zck_dl_get_header(zckCtx *zck, zckDL *dl, char *url); size_t zck_dl_get_bytes_downloaded(zckDL *dl); size_t zck_dl_get_bytes_uploaded(zckDL *dl); +int zck_dl_range(zckDL *dl, char *url); char *zck_dl_get_range(unsigned int start, unsigned int end); #endif diff --git a/src/lib/zck_private.h b/src/lib/zck_private.h index 9dc965d..28de9ac 100644 --- a/src/lib/zck_private.h +++ b/src/lib/zck_private.h @@ -33,12 +33,18 @@ typedef struct { /*typedef struct zckIndex zckIndex;*/ typedef void CURL; -typedef struct zckDL { - size_t dl; - size_t ul; - zckIndexInfo index; +typedef struct zckMP { + int state; + size_t length; + char *buffer; + size_t buffer_len; +} zckMP; + +typedef struct zckDLPriv { CURL *curl_ctx; -} zckDL; + zckMP *mp; + int parser_started; +} zckDLPriv; typedef struct zckComp { int started; -- 2.30.2